#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <Windows.h>
#include <conio.h>
#include <time.h>
#include <math.h>

#define N 32

//人物的基础属性，包括姓名，生命值，攻击力，防御力，硬直程度，人物位置，人物魔力，人物胜场，人物败场，人物胜率
typedef struct Hero
{
	char name[N];
	int HP;
	int POW;
	int DEF;
	int Stun;
	int location;
	int MP;
	int victory;
	int lost;
	float rate;
	int num;
}herodata;

typedef struct List
{
	herodata list[N];
	int heronum;
}herolist;


//人物初始化函数
void InitHero(herodata* hero, char *name, int HP, int POW, int DEF, int location, int num);

//防御检定
void Def_Check(int choose, herodata hero);

//攻击检定
herodata Attack_Check(int choose1, int choose2, herodata hero1, herodata hero2,int action);

//硬直计数器
void Init_Hero_Stun(herodata* hero);

//胜利检定
void Victory_Check(herodata* hero1, herodata* hero2, herolist* listdata);

//硬直检定
void Stun_Check(herodata hero);

//玩家距离检定
int Player_Len_Check(herodata hero1, herodata hero2);

//移动检定
int Move_Check(herodata* hero1, herodata* hero2, int* choose1, int* choose2, int player_len);

//技能检定
int Skill_Check(herodata* hero1, herodata* hero2, int skill1, int skill2, int choose1, int choose2, int player_len);

//追击检定
void Add_Attack(herodata hero, int* choose);

//继续攻击检定
void Continue_Attack(int* choose, int action);

//英雄状态打印
void Print_Hero_Data(herodata hero1, herodata hero2);

//显示人物
void Show_Hero(herolist listdata);

//主菜单
int Menu(herolist* listdata, herodata* hero1, herodata* hero2);